define(function() {
	"use strict";

	var initializer = function(name) {
		var self = this;

		self.name = name;
		
		var initialized = false;

		self.init = function(initFunction) {
			if (!initialized) {
				console.log("'"+self.name+"'", "init first time.");
				initFunction();
				initialized = true;
			}
		};

		self.initialized = function() {
			return initialized;
		};

	};

	return initializer;
});